1. Field of the Invention
The present invention relates generally to an improved data processing system, in particular, to a computer implemented method, a data processing system, and a computer program product for optimizing performance in a data processing system. Still more particularly, the present invention provides a computer implemented method, a data processing system, and a computer program product for input/output workload fingerprinting for input/output schedulers.
2. Description of the Related Art
Input/output schedulers (I/O schedulers) can increase the performance of input/output (I/O) throughput of a system dramatically by tuning the I/O scheduler parameters based on the current workload of the system. The input/output requests scheduled by an I/O scheduler for a system is the I/O workload of the system. A tunable parameter for the I/O scheduler is a parameter that affects the operation of an I/O scheduler. This type of parameter may be changed dynamically while the I/O scheduler is operating. The I/O scheduler parameters may include tunable parameters, such as a default read expire time-out period, a default write batch expire time-out period, and a write queue depth. However, the workload is very difficult for the I/O scheduler to classify because the I/O scheduler only examines a small perspective of what is occurring in the system. If an I/O scheduler could classify the actual current workload, the I/O scheduler could operate much more efficiently by tuning the I/O scheduler parameters based on the current workload of the system.
A common attempt at classifying workloads is made by attempting to recognize a sequential read operation through read-ahead classification. The idea of read-ahead classification is to increase the disk read ahead size by observing a pattern in which a single application accesses a single file on the disk.
Another common attempt at classifying workloads is made by an anticipatory I/O scheduler. This I/O scheduler breaks down all I/O requests for all applications into either a read request or a write request. If the current request is a read request, then the typical anticipatory I/O scheduler will run an adaptive heuristic algorithm (an approximation algorithm) on the probability that another read request will occur that accesses a sector that is a small seek distance away from the sector to be accessed by the current read request, even if the sector to be accessed is for a different file.